#!/bin/bash
# set -xeuo pipefail
set -euo pipefail


# macOS 环境特定配置
if [[ "$(uname -s)" == "Darwin" ]]; then
  echo "检测到 macOS 操作系统"
  # 获取并显示macOS版本信息
  MACOS_VERSION=$(sw_vers -productVersion)
  MACOS_BUILD_VERSION=$(sw_vers -buildVersion)
  echo "macOS 版本: $MACOS_VERSION ($MACOS_BUILD_VERSION)"
  # 检查/opt/homebrew/bin是否在PATH中
  if [[ "$PATH" != *"/opt/homebrew/bin"* ]]; then
    echo "/opt/homebrew/bin 不在PATH中，添加到PATH..."
    export PATH="$PATH:/opt/homebrew/bin"
  else
    echo "/opt/homebrew/bin 已在PATH中"
  fi
else
  echo "非macOS操作系统，无需更新PATH环境变量"
fi


# 构建pip安装包脚本
VERSION=${VERSION:-0.1.0}
APPLICATION=${APPLICATION:-scorpio}
PROJECT_DIR=$(cd $(dirname $0);cd ../;pwd)
VENV_PATH=${PROJECT_DIR}/.venv
PACKAGE_MANAGER=${PACKAGE_MANAGER:-uv}
# 获取从Makefile传递的pip镜像源，如果未设置则使用默认值
PIP_INDEX_URL=${PIP_INDEX_URL:-https://mirrors.aliyun.com/pypi/simple}

# 检查uv是否存在，如果不存在则使用pip安装
if ! which ${PACKAGE_MANAGER} &> /dev/null; then
  echo "${PACKAGE_MANAGER} 未安装，正在使用pip安装..."
  # 使用 || true 确保即使pip安装失败也不会导致脚本退出
  pip3 install --index-url ${PIP_INDEX_URL} ${PACKAGE_MANAGER} 
fi

# 检查venv是否存在，如果不存在则创建
echo "构建pip安装包: ${APPLICATION}-${VERSION}-py3-none-any.whl"
if [ ! -d "${VENV_PATH}" ]; then
  echo "创建虚拟环境: ${VENV_PATH}"
  ${PACKAGE_MANAGER} venv --prompt ${APPLICATION} || echo "虚拟环境创建失败，将使用系统Python环境"
fi

# 安装项目到当前环境
if [ -d "${VENV_PATH}" ]; then
  # which uv
  echo "使用虚拟环境安装依赖"
  source ${VENV_PATH}/bin/activate
  ${PACKAGE_MANAGER} sync --index-url ${PIP_INDEX_URL}
  # python -m build
	python -m build  --config-setting="--global-option=bdist_wheel" --config-setting="--global-option=--python-tag=py312"
else
  echo "虚拟环境初始化失败..."
  exit 1
fi